<?php

class BidController extends Controller
{
   /**
	 * @var string the default layout for the views. Defaults to '//layouts/column2', meaning
	 * using two-column layout. See 'protected/views/layouts/column2.php'.
	 */
	public $layout='//layouts/column2';

	/**
	 * @return array action filters
	 */
	public function filters()
	{
		return array(
			'accessControl', // perform access control for CRUD operations
			'postOnly + delete', // we only allow deletion via POST request
		);
	}

	/**
	 * Specifies the access control rules.
	 * This method is used by the 'accessControl' filter.
	 * @return array access control rules
	 */
	public function accessRules()
	{
		return array(
			array('allow',  // allow all users to perform 'index' and 'view' actions
				'actions'=>array('index','view'),
				'users'=>array('*'),
			),
            array('allow',  // allow all users to perform 'index' and 'view' actions
				'actions'=>array('update','updateAll','delete','ajaxhopdong',
                'hopdong',
                'bid_chapnhan','bid_khongchapnhan',
                'create_chapnhan','create_khongchapnhan',
                'thanhcong'),
				'users'=>array('@'),
			),
			array('allow', // allow admin user to perform 'admin' and 'delete' actions
				'actions'=>array('admin','delete'),
				'users'=>array('admin'),
			),
			array('deny',  // deny all users
				'users'=>array('*'),
			),
		);
	}

	public function actionIndex($id)
	{
        
        $model = new BidService;
        $data = Service::model()->findByPk($id);
        if(isset($_POST['BidService']))
		{
			$model->attributes=$_POST['BidService']; // lay tat ca form cho vao
            $model->user_id = Yii::app()->User->id;
            $model->service_id = $id;
            $model->timepost = date("Y-m-d H:i:s");
            if($model->save()){
                // Bid không hợp đồng
                User_Log::setLog('tbl_bidservice',$model->service_id,$model->id,1); // không hợp đồng type = 1
                $this->sendMailBid_Bid_Khonghopdong($model->id);
                $this->sendMailBid_Create_Khonghopdong($model->id);
                
				$this->redirect(array('view','id'=>$model->id));
            }	
		}
		$this->render('index',array('model'=>$model,'data'=>$data));
	}
    
    public function actionView($id)
	{
		$this->render('view',array(
			'model'=>$this->loadModel($id),
		));
	}
    
    public function loadModel($id)
	{
		$model=Bidservice::model()->findByPk($id);
		if($model===null)
			throw new CHttpException(404,'The requested page does not exist.');
		return $model;
	}
    
    function sendMail($title,$content,$mailuser){
        Yii::import('ext.yii-mail.YiiMailMessage');
            $message = new YiiMailMessage;
            $message->setBody($content, 'text/html');
            $message->subject = $title;
            $message->addTo($mailuser);
            $message->from = Yii::app()->params['adminEmail'];
            Yii::app()->mail->send($message);
    }
    
    
    
    
    
    /**
    *Khi người đăng không đồng ý làm hợp đồng
    */
    public function sendMailCreate_Bid_Khonghopdong($bidservice_id){
        $model = BidService::model()->findByPk($bidservice_id);
        $userBid_id = $model->user_id;
        $service_id = $model->service_id;
        $model_service = Service::model()->findByPk($service_id);
        $userCreate_id = $model_service->user_id;
        
        $name_bid = User::getName($userBid_id);
        $name_service = User::getName($userCreate_id);
        //$link1 = Yii::app()->request->hostInfo.Yii::app()->controller->createUrl('/service/create/view',array('id'=>$service_id));
        //$link2 =  Yii::app()->request->hostInfo.Yii::app()->controller->createUrl('/service/bid/view',array('id'=>$bidservice_id));
        
        $title = $name_service." đã không đồng ý làm hợp đồng cho dịch vụ : ".$model_service->name." bạn đã thuê";
        $content = "Dear ".$name_bid ."<br/>".
        $name_service." đã không đồng ý làm hợp đồng cho dịch vụ : ".$model_service->name." bạn đã thuê <br/>".
        "Chúc bạn thành công với những lần thuê tiếp theo <br/>".
        "Best, DnD Việt Name";
        
    }
    
    public function sendMailCreate_Create_Khonghopdong($bidservice_id,$service_id){
        $model_service = Service::model()->findByPk($service_id);
        $model_bid = BidService::model()->findByPk($bidservice_id);
        $userBid_id = $model_bid->user_id;
        $userService_id = $model_service->user_id;
        
        $name_bid = User::getName($userBid_id);
        $name_service = User::getName($userService_id);
        
        $title = "Bạn đã không làm hợp đồng với người thuê :".$name_bid;
        $content = "Dear ".$name_service."<br/>".
        "Bạn đã không thực hiên hợp đồng cho dịch vụ : ".$model_service->name." do ".$name_bid." đã thuê"."
        Chúc bạn thành công với những dịch vụ sau này <br/>
        Best, DnD Việt Name";
    }
    /**
    * end send mail người đăng không làm hợp đồng
    */
    
    
    public function actionAjaxhopdong($id){ // đồng ý làm hợp đồng
        $model = new BidService;
        if(isset($_POST['BidService'])){
			$model->attributes=$_POST['BidService'];
            $model->user_id = Yii::app()->User->id;
            $model->service_id = $id;
            $model->timepost = date("Y-m-d H:i:s");
            if($model->save()){
                $url ="index.php?r=service/bid/hopdong&bidservice_id=".$model->id."&service_id=".$id;
                echo "<script>window.location.href = '".$url."';</script>";       
            }	
		}
    }
    
    public function actionHopdong(){
        $this->render('hopdong');   
    }
    
    
    
    
    
    
    
    
    
    /**
    *===========================================================================================================
    */
    /**
    * NGƯỜI BID ĐỒNG Ý LÀM HỢP ĐỒNG
    */
    
    /**
    *send mail người thuê - làm hợp đồng
    */
    function sendMailBid_Bid_Hopdong($bid_id){
        
        $model_bid = BidService::model()->findByPk($bid_id);
        $service_id = $model_bid->service_id;
        $mode_service = Service::model()->findByPk($service_id);
    
        $title = "Bạn đã thuê thành công dịch vụ";
        $link =  Yii::app()->request->hostInfo.Yii::app()->controller->createUrl('/service/create/view',array('id'=>$model_bid->service_id));
        $content = "Dear ".User::getName($model_bid->user_id)."<br/>".
        "Bạn đã thuê thành công dịch vụ: ".Services::getName($model_bid->service_id)." do ".User::getName($mode_service->user_id)." đăng<br/>".
        "Chúng tôi đã tạo hợp đồng cho bạn, bạn vui lòng chờ phản hồi của người đăng dịch vụ này. 
        Nếu người đăng đồng ý yêu cầu của bọn thì dịch vụ sẽ chính thức được thực hiện.
        Chúng tôi sẽ đảm bảo quyền lợi của bạn. Chúc bạn thành công trong cuộc sống <br/>".
        "Bạn có thể vào link sau để xem dịch vụ vừa thuê <br/>".$link."<br/>".
        "Best,<br/>".
        "DnD Việt Nam";
        $this->sendMail($title,$content,User::getEmail($model_bid->user_id));
    }
    /**
    *send mail người tạo - khi người thuê làm hợp đồng
    */
    function sendMailBid_Create_Hopdong($bidservice_id){
        $model_bid = BidService::model()->findByPk($bidservice_id);
        $service_id = $model_bid->service_id;
        $model = Service::model()->findByPk($service_id); // load trong trong service
        
        $title = "Đã có người thuê dịch vụ của bạn";
        $link1 =  Yii::app()->request->hostInfo.Yii::app()->controller->createUrl('/service/create/view',array('id'=>$service_id));
        $link2 =  Yii::app()->request->hostInfo.Yii::app()->controller->createUrl('/service/bid/hopdong',array('bidservice_id'=>$bidservice_id,'service_id'=>$service_id));
        $link3 =  Yii::app()->request->hostInfo.Yii::app()->controller->createUrl('/service/bid/view',array('id'=>$bidservice_id));
        $content = "Dear <br/>".User::getName($model->user_id)."<br/>". 
        "Dịch vụ của bạn đã được thuê <br/>.
        Người thuê đã yêu cầu bạn thực hiện hợp đồng<br/>
        Bạn vào link sau để xem dịch vụ bạn đăng<br/>". $link1."<br/>".
        "Vào link sau để xem thông tin và yêu cầu người bid <br/>".$link3."<br/>".
        "Vào link sau để thực hiện hợp đồng <br/>".$link2."<br/>";
        "Best, DnD Việt Nam";
        $this->sendMail($title,$content,User::getEmail($model->user_id));
    }
    /**HÀNH ĐỘNG CHẤP NHẬN HỢP ĐỒNG**/
    public function actionBid_chapnhan(){
        if(isset($_GET['bid_id'])){
            $bid_id = $_GET['bid_id'];
            $service_id = $_GET['service_id'];
            BidService::model()->updateByPk($bid_id,array('bid_contracted'=>1));
            
            // Lưu trữ vào log người thuê đã làm hợp đồng nhưng chưa thanh toán
            User_Log::setLog('tbl_bidservice',$service_id,$bid_id,2);
            
            $this->sendMailBid_Bid_Hopdong($bid_id); // gửi mail thông báo cho người thuê
            $this->sendMailBid_Create_Hopdong($bid_id); // gửi mail thông báo cho người đăng
            
            $url ="index.php?r=service/bid/view&id=".$bid_id;
            echo "<script>window.location.href = '".$url."';</script>";  
        }
    }
    /**
    *KẾT THÚC NGƯỜI BID LÀM HỢP ĐỒNG
    */
    
    /**
    *==========================================================================================================
    */
    
    
    
    /**
    *==========================================================================================================
    */
    /**
    * BẮT ĐẦU NGƯỜI BID KHÔNG LÀM HỢP ĐỒNG
    */
    // MAIL CHO NGƯỜI BID
    function sendMailBid_Bid_Khonghopdong($bidservice_id){
        
        $model_bid = BidService::model()->findByPk($bidservice_id);
        $title = "Bạn đã thuê thành công dịch vụ";
        $link1 =  Yii::app()->request->hostInfo.Yii::app()->controller->createUrl('/service/create/view',array('id'=>$model_bid->service_id));
        $link2 =  Yii::app()->request->hostInfo.Yii::app()->controller->createUrl('/service/bid/hopdong',array('bidservice_id'=>$bidservice_id,'service_id'=>$model_bid->service_id));

        $content = "Dear ".User::getName($model_bid->user_id)."<br/>".
        "Bạn đã thuê thành công dịch vụ: ".Services::getName($model_bid->service_id)."<br/>".
        "Dịch vụ của bạn không có hợp đồng để đảm bảo về sản phẩm của bạn thuê<br/>".
        "Bạn hãy thực hiện hợp đồng để đảm bảo quyền lợi của bạn<br/>".
        "Bạn hãy vào link dưới đây để xem dịch vụ bạn thuê <br/>".$link1."<br/>".
        "Bạn có thể vào link sau để thực hiện hợp đồng <br/>".$link2."<br/>".
        "Best,<br/>".
        "DnD Việt Nam";
        $this->sendMail($title,$content,User::getEmail($model_bid->user_id));
    }
    
    
    
    // MAIL CHO NGƯỜI LÀM
    function sendMailBid_Create_Khonghopdong($bidservice_id){
        $model_bid = BidService::model()->findByPk($bidservice_id);
        $service_id = $model_bid->service_id;
        $model = Service::model()->findByPk($service_id); // load trong trong service
        
        $title = "Đã có người thuê dịch vụ của bạn";
        $link1 = Yii::app()->request->hostInfo.Yii::app()->controller->createUrl('/service/create/view',array('id'=>$service_id));
        $link2 = Yii::app()->request->hostInfo.Yii::app()->controller->createUrl('/service/bid/view',array('id'=>$bidservice_id));
        $content = "Dear <br/>".User::getName($model->user_id)."<br/>". 
        "Dịch vụ của bạn đã được thuê <br/>".
        "Bạn hãy vào link sau để xem dịch vụ bạn đăng <br/>".$link1."<br/>".
        "Bạn hãy vào link sau để xem thông tin và yêu cầu người thuê <br/>".$link2."<br/>".
        "Best, DnD Việt Nam";
        $this->sendMail($title,$content,User::getEmail($model->user_id));
    }
    
    public function actionBid_khongchapnhan(){
        /**
        * Send mail cho 2 người đăng và người thuê, sau đó chuyển người thuê tới trang Bid chi tiết
        */
        if(isset($_GET['bid_id'])){
            $bid_id = $_GET['bid_id'];
            $service_id = $_GET['service_id'];
            
            // Lưu trức vào log người thuê không thực hiện hợp đồng
            //Yii::app()->getModule('job')->createUserlogs('tbl_bidservice',$bid_id,$service_id,1);
            User_Log::setLog('tbl_bidservice',$service_id,$bid_id,1);
            
            $this->sendMailBid_Bid_Khonghopdong($bid_id);
            $this->sendMailBid_Create_Khonghopdong($bid_id);
            
            $url ="index.php?r=service/bid/view&id=".$bid_id;
            echo "<script>window.location.href = '".$url."';</script>";
        }
        
    }
    /**
    *KẾT THÚC NGƯỜI BID KHÔNG LÀM HỢP ĐỒNG
    */
    
    /**
    *===========================================================================================================
    */
    
    
    public function actionCreate_chapnhan(){
        if(isset($_GET['bid_id'])){
            $bid_id = $_GET['bid_id'];
            $service_id = $_GET['service_id'];
            $url ="index.php?r=pay/baokim/paid&id=".$bid_id.'&people=3';
            echo "<script>window.location.href = '".$url."';</script>";
        }
    }
    
    public function actionThanhcong(){
        $this->render('thanhcong');
    }

}